Un control ListBox tiene implementadas las funciones [SelectAll], y [UnselectAll] para seleccionar todos los elementos o bien para quitar la selección de todos ellos
El problema surge cuando quiero implementar el proceso [InvertirSeleccion], porque tendré que hacerlo con código
El código es el siguiente:
#Region "Botón InvertirSeleccion" Friend Sub ExecuteInvertirSeleccion() ' Esta colección contendrá los nuevos elementos seccionados Dim nuevaSeleccion As New List(Of LayerModelo.ItemUnaImagen) ' Recorro el ListBox For Each elementoListBox As LayerModelo.ItemUnaImagen In MyListBoxFotos.Items If MyListBoxFotos.SelectedItems.Contains(elementoListBox) Then ' ya esta seleccionado, no hacer nada Else 'No esta seleccionado. como estoy invirtiendo la selección, 'lo incluyo en la NUEVA lista de elementos seleccionados nuevaSeleccion.Add(elementoListBox) End If Next ' Borro TODOS los elementos actualmente seleccionados MyListBoxFotos.SelectedItems.Clear() ' Incluyo los NUEVOS elementos seleccionados ' en la lista de elementos seleccionados del listBox For Each elementoSeleccionado As LayerModelo.ItemUnaImagen In nuevaSeleccion MyListBoxFotos.SelectedItems.Add(elementoSeleccionado) Next End Sub #End Region